package pprof

import (
	"gitee.com/tiger000/taishan_web/taishan"
	"net/http/pprof"
)

func Register(engine *taishan.Engine) {
	engine.Get("", "/debug/pprof", func(context *taishan.Context) error {
		pprof.Index(context.GetHttpResponseWriter(), context.Request)
		return nil
	})
	engine.Get("", "/debug/pprof/cmdline", func(context *taishan.Context) error {
		pprof.Cmdline(context.GetHttpResponseWriter(), context.Request)
		return nil
	})
	engine.Get("", "/debug/pprof/profile", func(context *taishan.Context) error {
		pprof.Profile(context.GetHttpResponseWriter(), context.Request)
		return nil
	})
	engine.Get("", "/debug/pprof/symbol", func(context *taishan.Context) error {
		pprof.Symbol(context.GetHttpResponseWriter(), context.Request)
		return nil
	})
	engine.Get("", "/debug/pprof/trace", func(context *taishan.Context) error {
		pprof.Trace(context.GetHttpResponseWriter(), context.Request)
		return nil
	})
	engine.Get("", "/debug/pprof/allocs", func(context *taishan.Context) error {
		pprof.Handler("allocs").ServeHTTP(context.GetHttpResponseWriter(), context.Request)
		return nil
	})
	engine.Get("", "/debug/pprof/block", func(context *taishan.Context) error {
		pprof.Handler("block").ServeHTTP(context.GetHttpResponseWriter(), context.Request)
		return nil
	})
	engine.Get("", "/debug/pprof/goroutine", func(context *taishan.Context) error {
		pprof.Handler("goroutine").ServeHTTP(context.GetHttpResponseWriter(), context.Request)
		return nil
	})
	engine.Get("", "/debug/pprof/heap", func(context *taishan.Context) error {
		pprof.Handler("heap").ServeHTTP(context.GetHttpResponseWriter(), context.Request)
		return nil
	})
	engine.Get("", "/debug/pprof/mutex", func(context *taishan.Context) error {
		pprof.Handler("mutex").ServeHTTP(context.GetHttpResponseWriter(), context.Request)
		return nil
	})
	engine.Get("", "/debug/pprof/threadcreate", func(context *taishan.Context) error {
		pprof.Handler("threadcreate").ServeHTTP(context.GetHttpResponseWriter(), context.Request)
		return nil
	})
}
